package com.expert.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.expert.dto.AddMenuDTO;
import com.expert.dto.UpdateMenuDTO;
import com.expert.pojo.Menu;
import com.expert.vo.MenuVo;
import com.expert.vo.ParentMenuVo;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName: MenuService
 * @Author: cxs
 * @Date: 2024/01/24 13:46
 * @Description:
 **/
public interface MenuService  extends IService<Menu> {
    List<MenuVo> createMenu();

    /**
     * 分页查询菜单信息
     * @param page 当前页
     * @param pageSize 每页条数
     * @param title 标题
     * @param pTitle 父级标题
     * @return 分页查询结果
     */
    Page<Menu> pageMenu(Integer page, Integer pageSize, String title, String pTitle);

    /**
     * 获取系统所有菜单信息
     * @return 菜单列表
     */
    List<MenuVo> getSystemMenus();

    /**
     * 获取父级菜单信息
     * @return
     */
    List<ParentMenuVo> getParentMenu();

    /**
     * 添加菜单信息
     * @param addMenuDTO
     * @return
     */
    void addMenu(AddMenuDTO addMenuDTO);

    /**
     * 删除菜单信息
     * @param ids
     */
    void deleteMenu(ArrayList<Long> ids);

    /**
     * 修改菜单信息
     * @param updateMenuDTO
     */
    void updateMenu(UpdateMenuDTO updateMenuDTO);
}
